import axios from '@/libs/api.request'

// 核注清单默认导入地址
export const importXlsInvtUrl = '/customs/invt/importXlsInvt'

// 自定义模板导入地址
export const importXlsByTemplateUrl = '/excelTemplate/importXlsByTemplate'

/**
 * 查询核注清单列表
 * @param {String} etpsInnerInvtNo 清单编号
 * @param {String} listStat 状态
 * @param {Number} pageNum 页码
 * @param {Number} pageSize 分页大小
 */
export function queryCheckRegList ({
    etpsInnerInvtNo,
    listStat,
    saveType,
    pageNum,
    pageSize,
    impexpMarkcd, // 进出口别
    invtDclTimeStart, // 日期
    invtDclTimeEnd, // 日期
    custName, // 客户名称
    bondInvtNo, // 仓库核注清单号
    goodsName, // 货物名称
    practicalTrainingId // 实训id
}) {
    return axios.request({
        url: '/customs/invt/queryListByCondition',
        data: {
            etpsInnerInvtNo,
            listStat,
            saveType,
            pageNum,
            pageSize,
            impexpMarkcd, // 进出口别
            invtDclTimeStart, // 日期
            invtDclTimeEnd, // 日期
            custName, // 客户名称
            bondInvtNo, // 仓库核注清单号
            goodsName, // 货物名称
            practicalTrainingId
        },
        method: 'post'
    })
}

/**
 * 根据核注清单id查询核注清单信息
 * @param {Number} InvtId 核注清单id
 */
export function queryCheckRegById (InvtId) {
    return axios.request({
        url: '/customs/invt/queryInvtById',
        params: { InvtId },
        method: 'post'
    })
}

/**
 * 删除核注清单
 * @param {String} InvtIds 需要删除的核注清单集合(','隔开:2,3,4)
 */
export function deleteCheckReg (InvtIds) {
    return axios.request({
        url: `/customs/invt/deleteInvtById?InvtIds=${InvtIds}`,
        method: 'post'
    })
}

/**
 * 新建或修改核注清单数据--统一保存接口
 * @param {Object} data 核注清单数据
 */
export function saveCheckReg (data) {
    return axios.request({
        url: `/customs/invt/unifySaveInvt`,
        data,
        method: 'post'
    })
}

/**
 * 申报核注清单
 * @param {String} InvtIds 核注清单主键拼接
 * @param {String} delcareFlag  申报标志(0--暂存；1--申报)
 */
export function sendInvtToSingleWindow (invtIds, delcareFlag = 1) {
    return axios.request({
        url: `/customs/invt/sendInvtToSingleWindow`,
        data: {
            invtIds,
            delcareFlag
        },
        method: 'post'
    })
}

/**
 * 查询当前客户当前自定义模板列表
 * @param {Object} params 查询条件
 */
export function queryExcelTemplate (params) {
    return axios.request({
        url: '/excelTemplate/list',
        params,
        method: 'get'
    })
}

/**
 * 查看核注清单回执列表
 * @param {String} id invtId
 * @param {String} pageNum 页码
 * @param {String} pageSize 分页size
 */
export function queryInvtResponse ({ id, pageNum, pageSize, dataMainType }) {
    return axios.request({
        url: '/customs/invt/queryInvtResponse',
        data: { id, pageNum, pageSize, dataMainType },
        method: 'post'
    })
}

/**
 * 新建或修改核放单数据--统一保存接口
 * @param {Object} data 核注清单数据
 */
export function sassUnifySaveSas (data) {
    return axios.request({
        url: '/customs/sas/unifySaveSas',
        data,
        method: 'post'
    })
}

/**
 * 查询核放单列表
 * @param {Object} data 查询条件
 */
export function querySasListByCondition (data) {
    return axios.request({
        url: '/customs/sas/queryListByCondition',
        data: data,
        method: 'post'
    })
}

/**
 * 根据核放单id查询核放单信息
 * @param {Number} sasId 核放单id
 */
export function querySasById (sasId) {
    return axios.request({
        url: '/customs/sas/querySasById',
        params: { sasId },
        method: 'post'
    })
}

/**
 * 根据id删除核放单
 * @param {String} sasId 删除id
 */
export function deleteSasById (sasId) {
    return axios.request({
        url: '/customs/sas/deleteSasById',
        params: {
            sasId
        },
        method: 'post'
    })
}

/**
 * 申报核放单
 * @param {String} 核放单id
 * @param {delcareFlag} 申报标识(0--暂存；1--申报)
 */
export function sendSasToSingleWindow (invtIds, delcareFlag) {
    return axios.request({
        url: '/customs/sas/sendInvtToSingleWindow',
        data: {
            invtIds,
            delcareFlag
        },
        method: 'post'
    })
}

/**
 * 根据出（入）仓单号查询核注清单
 * @param {String} etpsInnerInvtNo 仓单号
 * @param {String} bindSas  是否未绑定核放单
 */
export function queryInvtByEtpsNo (params) {
    return axios.request({
        url: '/customs/sas/queryInvtByInvtNo',
        params,
        method: 'get'
    })
}

/**
 * 快速制单，获取核放单部分字段值
 * @param {String} invtIds 核注清单id
 */
export function quicklySasMakeBill (invtIds) {
    return axios.request({
        url: '/customs/sas/confirmQuicklyMakeBill',
        params: {
            invtIds
        },
        method: 'get'
    })
}

/**
 * 按条件分页查询核放单关联单证
 * @param {Object} data
 */
export function queryRltNosByCondition (data) {
    return axios.request({
        url: '/customs/sas/queryRltNosByCondition',
        data,
        method: 'post'
    })
}

/**
 * 根据cookie下载复核表(生成至文件服务器)
 * @param {integer} sasId 核放单id
 */
export function sasPostSasSwPdf (sasId) {
    return axios.request({
        url: '/customs/sas/postSasSwPdf',
        params: {
            sasId
        },
        method: 'post'
    })
}

// 根据备案号和或备案序号查询手册资料
export function queryManualByItem (data) {
    return axios.request({
        url: '/customs/manual/queryManualByItem',
        data,
        method: 'post'
    })
}

/**
 * 判断核放单是否可操作
 */
export function checkSasFreezeButton ({
    id,
    dataMainType,
    pageNum = 0,
    pageSize = 10
}) {
    return axios.request({
        url: '/customs/sas/freezeButton',
        data: {
            id,
            dataMainType,
            pageNum,
            pageSize
        },
        method: 'post'
    })
}

/**
 * 打印核注清单
 * @param {Number} 核注清单id
 * @param {String} 打印文件类型
 */
export function invtPrintPDF (invtId, type) {
    return axios.request({
        url: '/customs/invt/printPdf',
        params: {
            invtId, type
        },
        method: 'get'
    })
}

/**
 * 根据cookie下载复核表(生成至文件服务器
 * @param {String} invtId
 */
export function invtPrintSwPdf (invtId) {
    return axios.request({
        url: '/customs/invt/postInvtSwPdf',
        params: {
            invtId
        },
        method: 'get'
    })
}
